/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uerj.swing;

import br.uerj.jms.usuario.PublishUsuario;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;

/**
 *
 * @author Felipe Ribeiro
 */
public class TelaInicial {

    /**
     * Cria uma nova instância de caixa de texto para receber a pesquisa
     */
    public static JTextField caixa = new JTextField();

    /**
     * Cria uma nova instância de área de texto para retornar o resultado da
     * pesquisa
     */
    public static JTextArea texto = new JTextArea();

    /**
     * Cria uma nova instância de barra de rolagem
     */
    public static JScrollPane scroll = new JScrollPane();

    /**
     * Cria uma nova instância de frame
     */
    public static JFrame frame = new JFrame("Banco de Dados relacional com Public/Subscribe");

    /**
     * Método que cria a tela de interação do usuário com o aplicativo
     */
    public static void criar() {

        /**
         * Configuração das propriedades da caixa de texto
         */
        caixa.setBounds(25, 50, 330, 20);
        caixa.setBackground(Color.WHITE);
        caixa.setBorder(new LineBorder(Color.BLACK, 1));

        /**
         * Configuração das propriedades da barra de rolagem
         */
        scroll.getViewport().setView(texto);
        scroll.setBounds(25, 120, 445, 150);
        scroll.setBorder(new LineBorder(Color.BLACK, 1));

        /**
         * Cria uma nova instância de rótulo
         */
        JLabel label = new JLabel("Digite abaixo o conteúdo desejado:");
        label.setBounds(25, 20, 200, 20);

        /**
         * Cria uma nova instância de botão
         */
        JButton botao = new JButton("Enviar");
        botao.setBounds(380, 50, 90, 20);

        /**
         * Ação tomada pelo clique do botão para enviar a pesquisa para ser
         * processada
         */
        botao.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    /**
                     * Tenta chamar o método que envia a pesquisa, passando como
                     * parâmetro o texto contido na caixa de texto
                     */
                    PublishUsuario.start(caixa.getText());

                } catch (Exception x) {
                    System.err.print(x.getMessage());
                }
            }
        });

        /**
         * Cria uma nova instância de rótulo
         */
        JLabel label2 = new JLabel("Resultado:");
        label2.setBounds(25, 90, 200, 20);

        /**
         * Cria uma nova instância de botão
         */
        JButton sair = new JButton("Sair");
        sair.setBounds(380, 300, 90, 20);

        /**
         * Ação tomada pelo clique do botão para sair da tela
         */
        sair.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    /**
                     * Tenta sair do aplicativo
                     */
                    System.exit(0);
                } catch (Exception x) {
                    /**
                     * Se a tentativa falhar, exibe o erro
                     */
                    System.err.print(x.getMessage());
                }
            }
        });

        /**
         * Cria uma nova instância de painel para acoplar os objetos declarados
         * anteriormente
         */
        JDesktopPane jpane = new JDesktopPane();
        jpane.add(label);
        jpane.add(label2);
        jpane.add(caixa);
        jpane.add(botao);
        jpane.add(sair);
        jpane.add(scroll);
        jpane.setBackground(Color.LIGHT_GRAY);

        /**
         * Configuração das propriedades do frame
         */
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 400);
        frame.setLocationRelativeTo(null);
        frame.add(jpane);
        frame.setVisible(true);
    }
}
